Gaming Network Using Host-Configured Networking Protocols

ABSTRACT

Methods and systems for using user-configured networking protocols in wagering game networks are described herein. In one embodiment, a computer-implemented method for using user-configured networking protocols includes receiving values for one or more user-specified options associated with a gaming device and receiving a network address request originating from the gaming device. The computer-implemented method can also include transmitting a reply destined for the gaming device, wherein the reply includes a network address and the values for the one or more user-specified options.

RELATED APPLICATIONS

This application claims the priority benefit of U.S. Provisional Application Ser. No. 60/715,997, filed Sep. 9, 2005, the contents of which are incorporated herein by reference.

LIMITED COPYRIGHT WAIVER

A portion of the disclosure of this patent document contains material to which the claim of copyright protection is made. The copyright owner has no objection to the facsimile reproduction by any person of the patent document or the patent disclosure, as it appears in the U.S. Patent and Trademark Office file or records, but reserves all other rights whatsoever. Copyright 2005, 2006 WMS Gaming, Inc.

FIELD

This invention relates generally to the field of wagering gaming devices and more particularly to the field of wagering game devices capable of using user-configured networking protocols.

BACKGROUND

A wide variety of computerized wagering game machines (a.k.a. gaming machines) are now available to casino operators and players. Computerized gaming machines range from slot machines to games that are traditionally played live, such as poker, blackjack, roulette, etc. These computerized gaming machines provide many benefits to game owners and players, including increased reliability over mechanical machines, greater game variety, improved sound and animation, and lower overall management cost.

When technicians initially deploy gaming machines for use in casinos, they typically manually wire the gaming machines into gaming networks and manually configure numerous gaming machine settings. For example, the technicians may configure settings such as currency denominations for bill validators, screen resolution for video displays, volume for an audio devices, etc. Additionally, the technicians may also configure wagering game settings, such as pay lines, jackpot limits, betting limits, bonus game settings, and the like. Technicians traditionally configure gaming machine settings by toggling DIP switches, moving expansion board jumpers, setting various dials and knobs, and paging through complicated set-up menus. Because manually configuring gaming machines on the casino floor can be an expensive and laborious process, there is a need for new ways for configuring gaming machines.

SUMMARY

Methods and systems for using user-configured networking protocols in wagering game networks are described herein. In one embodiment, a computer-implemented method for using user-configured networking protocols includes receiving values for one or more user-specified options associated with a gaming device and receiving a network address request originating from the gaming device. The computer-implemented method can also include transmitting a reply destined for the gaming device, wherein the reply includes a network address and the values for the one or more user-specified options.

BRIEF DESCRIPTION OF THE FIGURES

The present invention is illustrated by way of example and not limitation in the Figures of the accompanying drawings in which:

FIG. 1 is a block diagram illustrating a gaming network, according to example embodiments of the invention;

FIG. 2 is a block diagram illustrating an example gaming machine used in conjunction with embodiments of the invention;

FIG. 3 is a block diagram illustrating a gaming device architecture suitable for operating as a DCHP server or DHCP relay agent, according to example embodiments of the invention;

FIG. 4 is a flow diagram illustrating operations for configuring a DHCP server with user-specified values and policies, according to example embodiments of the invention;

FIG. 5 is a flow diagram illustrating operations for assigning IP addresses and disseminating user-specified DHCP configuration information in a gaming network, according to example embodiments of the invention;

FIG. 6 is a flow diagram illustrating operations for requesting and receiving gaming configuration information from a DHCP server, according to example embodiments of the invention;

FIG. 7 is a flow diagram illustrating operations for authenticating a DHCP server and exchanging messages therewith, according to example embodiments of the invention;

FIG. 8 is a flow diagram illustrating operations for validating message authentication codes transmitted in DHCP messages, according to example embodiments of the invention;

FIG. 9 is a flow diagram illustrating operations for verifying the security code of a DHCP IP address request;

FIG. 10 is a flow diagram illustrating operations for generating a DHCP message that includes authentication option information, according to example embodiments of the invention;

FIG. 11 is a flow diagram illustrating DHCP option operations performed by a relay agent, according to example embodiments of the invention;

FIG. 12 is a flow diagram illustrating operations for using relay agent information for determining a gaming device's location and fetching configuration information, according to example embodiments of the invention; and

FIG. 13 is a perspective view of a gaming machine, according to example embodiments of the invention.

DESCRIPTION OF THE EMBODIMENTS

This description of the embodiments describes wagering game devices that are capable of using user-configured networking protocols. This description of the embodiments is divided into four sections. The first section describes an example gaming network and gaming device architectures, while the second section describes example operations performed by some embodiments of the gaming network and gaming device architectures. The third section describes embodiments of a gaming machine and the fourth section provides some general comments.

Example System Architecture and Operating Environment

This section provides an example gaming network in which embodiments of the invention can be practiced. This section also provides example architectures for embodiments of a Dynamic Host Configuration Protocol (DHCP) server and a gaming machine. Operations for these and other embodiments will be described in the next section.

Example Gaming Network

FIG. 1 is a block diagram illustrating a gaming network, according to example embodiments of the invention. The gaming network 100 includes a communication network 104 connected to a DHCP server 102, which is connected to a policy/configuration to store 114. The communications network 104 is connected to a plurality of relay agents 106, each of which is connected to a community game server 110, and a community presentation device 112, and a plurality of gaming machines 108.

One of the relay agents 106 is connected to another relay agent 116. The relay agent 116 is connected to a community presentation device 112, a community game server 110, and a plurality of gaming machines 118.

In one embodiment, the DHCP server 102 can provide Internet Protocol (IP) addresses and other gaming configuration information to the gaming machines 108 and 100, community game servers 110 and 120, and community presentation devices 112 and 122. In one embodiment, the policy/configuration store stores gaming configuration information for configuring the gaming devices. The gaming configuration information can include gaming content, such as audio, video, pay tables, gaming software updates, and any other suitable electronic data useful for configuring gaming devices. In one embodiment, the gaming configuration information can include URLs with which gaming devices can retrieve gaming content or additional configuration information. The gaming configuration information can also indicate a game type, such as slots, video poker, video black jack, etc. Additionally, the type can indicate a theme, such as Monopoly® or Hollywood Squares®. Operations for disseminating IP addresses and configuration information are described in more detail below, in the next section.

The policy/configuration store 114 can store the gaming configuration information and user-specified (i.e., vendor-specific) DHCP server policies. In one embodiment, the policy/configuration store can be a database.

In one embodiment, the relay agents 106 and 116 can forward DHCP requests to the DHCP server 102. For example, in one embodiment, the relay agent 116 can forward DHCP requests from the gaming machines 118 to the relay agent 106, which in turn can forward the DHCP requests to the DHCP server 102. The relay agents 106 and 116 can also return DHCP replies from the DHCP server 102 to the gaming machine 118.

The community game servers 110 and 120 can conduct community games in which a plurality of gaming machines can participate. For example, the community game server 120 can conduct a community game for the gaming machines 118. The community presentation devices 112 and 122 can present the community games on large-screen display devices (e.g., plasma displays, digital light processor displays, etc.).

While FIG. 1 describes an example gaming network, FIGS. 2 and 3 provide additional details about the gaming devices which make up the gaming network.

Example Gaining Machine

FIG. 2 is a block diagram illustrating an example gaming machine used in conjunction with embodiments of the invention. As shown in FIG. 2, the gaming machine 206 includes a central processing unit (CPU) 226 connected to a memory unit 228, which includes a configuration unit 232.

In one embodiment, the configuration unit 232 requests and receives IP addresses and configuration settings and/or values. The configuration unit 232 can use this information for configuring the gaming machine 206 for operation in a gaming network (e.g., gaming network 100).

The CPU 226 is also connected to a network interface unit 224, which is connected to a gaming network 204. Additionally, the CPU 226 is connected to an input/output (I/O) bus 222. The I/O bus 222 is connected to a payout mechanism 208, secondary display 210, primary display 212, money/credit detector 214, touchscreen 216, push-buttons 218, and information reader 220. The I/O bus 222 facilitates communication between the system components and the CPU 226.

According to some embodiments, the gaming machine 206 can include additional peripheral devices and/or more than one of each component shown in FIG. 2. For example, in one embodiment, the gaming machine 206 can include multiple network interface units 224 and multiple CPUs 226. Additionally, the components of the gaming machine 206 can be interconnected according to any suitable interconnection architecture (e.g., directly connected, hypercube, etc.).

According to some embodiments, the gaming machine 206 includes tangible machine-readable media including instructions for conducting basic wagering games, conducting bonus games, and configuring gaming machines. According to embodiments of the invention, the gaming machine 206 and other components of the gaming network can include other types of logic (e.g., digital logic) for executing the operations described herein.

According to embodiments, the gaming machine 206 can conduct any suitable casino-style wagering game, such as video poker, video blackjack, video slots, etc. Additional details about gaming machines used in conjunction with embodiments of the invention are described below, in the discussion of FIG. 13.

FIG. 3 is a block diagram illustrating a gaming device architecture suitable for operating as a DCHP server or DHCP relay agent, according to example embodiments of the invention. As illustrated in FIG. 3, the gaming device 300 comprises processor(s) 302, a memory unit 340, processor bus 322, and Input/Output controller hub (ICH) 324. The processor(s) 302, memory unit 340, and ICH 324 are coupled to the processor bus 322. The processor(s) 302 may be of any suitable processor architecture. The gaming device 300 may comprise one, two, three, or more processors, any of which can execute a set of instructions in accordance with embodiments of the invention.

The memory unit 340 includes a DHCP unit 330, which can cause the gaming device 300 to operate as a DCHP server or DHCP relay agent. Acting as a DHCP server, the DHCP unit 340 can provide Internet Protocol (IP) addresses and other configuration information to gaming devices in a gaming network. Acting as a DHCP agent, the DHCP unit 340 can pass DHCP requests to and from DHCP servers. Operations of the DHCP unit are described in greater detail below, in the next section.

The memory unit 340 can also store data and/or instructions, and can comprise any suitable memory, such as a dynamic random access memory (DRAM). The gaming device 300 also includes IDE drive(s) 308 and/or other suitable storage devices. The graphics controller 304 controls the display of information on a display device 306, according to embodiments of the invention.

The input/output controller hub (ICH) 324 provides an interface to I/O devices or peripheral components for the gaming device 300. The ICH 324 may comprise any suitable interface controller to provide for any suitable communication link to the processor(s) 302, memory unit 340 and/or to any suitable device or component in communication with the ICH 324. For one embodiment of the invention, the ICH 324 provides suitable arbitration and buffering for each interface.

In one embodiment, the ICH 324 provides an interface to one or more suitable integrated drive electronics (IDE) drives 308, such as a hard disk drive (HDD) and to suitable universal serial bus (USB) devices through one or more USB ports 310. In one embodiment, the ICH 324 also provides an interface to a keyboard 312, mouse 314, CD-ROM drive 318, or other suitable devices through one or more firewire ports 316. In one embodiment, the ICH 324 also provides a network interface 330 though which the gaming device 300 can communicate with gaming machines, configuration devices, and other gaming network devices. The network interface 330 can employ any suitable wireless technology (e.g., 802.11b, 802.11g, etc.) for wirelessly connecting to gaming networks.

In one embodiment, the gaming device 300 includes a machine-readable medium that stores a set of instructions (e.g., software) embodying any one, or all, of the methodologies for configuring gaming machines, as described herein. Furthermore, software can reside, completely or at least partially, within memory unit 340 and/or within the processor(s) 302. This description continues with a discussion of example gaming machines.

Example Operations

This section describes operations performed by embodiments of the invention. In the discussion below, the flow diagrams will be described with reference to the block diagrams presented above. In certain embodiments, the operations are performed by instructions residing on machine-readable media (e.g., software), while in other embodiments, the operations are performed by hardware and/or other logic (e.g., digital logic).

This section includes subsections which describe embodiments performing general DHCP operations, DHCP authentication operations, and DHCP relay agent operations.

General DHCP Operations

This subsection presents FIGS. 4-6. Operations for configuring a DHCP server are described next.

FIG. 4 is a flow diagram illustrating operations for configuring a DHCP server with user-specified values and policies, according to example embodiments of the invention. The flow 400 commences at block 402.

At block 402, the DHCP server presents a DHCP configuration interface. For example, the DHCP server 102 presents a DHCP configuration interface (e.g., a graphical user interface) to a system administrator. The DHCP configuration interface can include selectable/programmable options for configuring the DHCP server 102. The flow continues at block 404.

At block 404, the DHCP server receives values for one or more user-specified DHCP options through the DCHP configuration interface. In one embodiment, the user-specified DHCP options include gaming configuration information including gaming software updates, URLs, pay tables, game-up/game-down times, IP address lease times, or other gaming content. In one embodiment, the user-specified DHCP options include vendor-specific information. Other embodiments include any suitable user-specified configuration information. The flow continues at block 406.

At block 406, the DHCP server receives one or more DHCP policies through the DHCP configuration interface. For example, the system administrator enters or selects DHCP policies using the DHCP configuration interface. In one embodiment, the DHCP policies include policies related to the user-specified DHCP options and gaming device security. In one embodiment, there can be policies governing specific IP addresses or specific gaming devices. The flow continues at block 408.

At block 408, the DHCP server stores the DHCP policies and/or the user-specified DHCP options in the policy/configuration store 114. From block 408, the flow ends.

After the DHCP server is configured, the DHCP server is ready to respond to IP address requests and to disseminate its user-specified configuration information.

FIG. 5 is a flow diagram illustrating operations for assigning IP addresses and disseminating user-specified DHCP configuration information in a gaming network, according to example embodiments of the invention. The flow commences at block 502.

At block 502, the DHCP server 102 receives an IP address request from a gaming device (e.g., gaming machine 108). In one embodiment, the IP address request includes information identifying the gaming device. For example, the identification information can include the gaming device's media access control address, hash values, etc. The flow continues at block 504.

At block 504 the DHCP server 102 determines whether there is a policy associated with the IP address request. In one embodiment, the DHCP server 102 searches the policy/configuration store 114 for policies associated with the gaming device's identification and/or the gaming device's location. Policies can affect whether the DHCP server 102 replies to IP address requests. For example, a policy may prevent the DHCP server 102 from providing an IP address after a certain date (e.g., after a field trial). If there is a policy associated with the IP address request, the flow continues at block 506. Otherwise, the flow continues at block 508.

At block 506, the DHCP server 102 determines whether the policy allows for transmission of a reply. If the policy allows for transmission of a reply, the flow continues at block 508. Otherwise the flow ends. In one embodiment, the policy precludes replies based on the requester's identifier, time of day, requestor's location, or any other suitable reason.

At block 508, the DHCP server 102 retrieves user-specified information associated with the IP address request. In one embodiment, the DHCP server 102 retrieves the user-specified information from policy/configuration store 114. The user-specified information can include gaming configuration information, such as an address of a streaming audio/video server, an address of a gaming content server, audio, video, pay tables, gaming software updates, and any other suitable electronic data useful for configuring gaming devices. The flow continues at block 510.

At block 510, the DHCP server 102 transmits to the requester (e.g., gaming machine 108) a reply including user-specified information. From block 510, the flow ends.

While FIG. 5 describes embodiments that provide IP addresses and user-specified configuration information, FIG. 6 describes embodiments that request such information. The discussion continues with FIG. 6.

FIG. 6 is a flow diagram illustrating operations for requesting and receiving gaming configuration information from a DHCP server, according to example embodiments of the invention. The flow commences at block 602.

At block 602, a gaming device (e.g., gaming machine 104) transmits to the DHCP server 102 a request for an IP address. In one embodiment, the request includes an identification of the gaming device. In one embodiment, the request includes location information associated with the gaming device. The flow continues at block 604.

At block 604, the gaming device determines whether a DHCP reply was received, where the reply includes user-specified gaming information. If a reply was not received, the flow ends. If a reply was received, but it does not include user-specified gaming information, the flow ends. Otherwise, the flow continues at block 606.

At block 606, the gaming device performs gaming device operations associated with the user-specified information. For example, the gaming device configures its game to use pay tables or gaming content included in the reply's user-specified information. Additionally, the gaming device can install software updates or fetch gaming content/configuration information from a URL included in the reply's user-specified content. From block 606, the flow ends.

DHCP Authentication

This subsection presents FIGS. 7-10. Operations for authenticating a DHCP server are described next.

FIG. 7 is a flow diagram illustrating operations for authenticating a DHCP server and for exchanging messages with the DHCP server, according to example embodiments of the invention. The flow commences at block 702.

At block 702, a gaming device (e.g., gaming machine 108) transmits a DHCP discover message that includes an authentication request and a gaming device identifier. In one embodiment, the authentication request is an option included in a DHCP message. In one embodiment, the discover message is a broadcast intended for any DHCP server in the gaming network. The flow continues at block 704.

At block 704, the gaming device receives one or more DHCP offer messages, each including a key identifier and a message authentication code. In one embodiment, the key identifier identifies an encryption key used to generate the message authentication code. In one embodiment, the network includes multiple DHCP servers, so the gaming device receives a plurality of offer messages. From block 704, the flow continues at block 706.

At block 706, the gaming device performs validation tests on the one or more DHCP offer messages to determine whether they are valid. This operation will be discussed in more detail below, in the discussion of FIG. 8. From block 706, the flow continues at block 708.

At block 708, the gaming device determines whether some of the DHCP offer messages are valid. For example, based on the validation tests, the gaming device determines whether the offer messages are valid. If there are some valid offer messages, the flow continues at block 710. Otherwise, the flow continues at block 718.

At block 710, the gaming device chooses one of the DHCP offer messages. In one embodiment, each offer message indicates how long an associated IP address will be valid (i.e., each offer includes a lease term). In one embodiment, the gaming device chooses the offer message whose IP address will be valid the longest. The flow continues at block 712.

At block 712, the gaming device generates a DHCP request message that includes the key identifier and a second message authentication code. This operation is described in more detail in the discussion of FIG. 10. The flow continues at block 714.

At block 714, the gaming device transmits the DHCP request message to the sender of the chosen offer message. For example, the gaming device transmits the request to DHCP server 102. The flow continues at block 716.

At block 716, the gaming device receives, validates, and transmits other messages to and from the sender of the chosen offer message. In one embodiment, the other messages include acknowledgement messages, verify messages, rebind messages, inform messages, and release messages. From block 716, the flow ends.

At block 718, the gaming device determines whether unauthenticated DHCP servers can be used. In one embodiment, the gaming device looks up DHCP policies in the policy/configuration store 114 to determine whether use of an unauthenticated DHCP server is allowed. If unauthenticated servers can be used, the flow continues at block 712. Otherwise, the flow ends.

The operation at block 706 is described in greater detail below, in the discussion of FIG. 8.

FIG. 8 is a flow diagram illustrating operations for validating message authentication codes transmitted in DHCP messages, according to example embodiments of the invention.

In one embodiment, the operations of the flow 800 are performed in response to receiving a DHCP message from a DHCP server (see blocks 704 and 706). As noted above, the DHCP message can include a key identifier and message authentication code. The flow 800 commences at block 802.

At block 802, the gaming device computes a second message authentication code using a key associated with a DHCP message's key identifier. In one embodiment, the gaming device first finds the DHCP message's message authentication code. Next, the gaming device computes another message identification code using a key associated with the DHCP message's key identifier.

In one embodiment, the gaming device computes the message authentication code using the HMAC generation algorithm and the MD5 hash function. The entire DHCP message, including the DHCP message header and options field, is used as input to the HMAC-MD5 computation function. The “secret ID” field can be set to the identifier of the secret used to generate the message authentication code. Additional details for computing message authentication codes can be found in: Request For Comment 3118—Authentication for DHCP Messages; Network Working Group; R. Droms, Editor; W. Arbaugh, Editor; University of Maryland, June 2001.

The flow continues at block 804.

At block 804, the gaming device compares the computed message authentication code to the DHCP message's authentication code. The flow continues at block 806.

At block 806, the gaming device determines whether the computed message authentication code matches the DHCP message's authentication code. If the message authentication codes match, the flow continues at block 808. If they do not match, the flow continues at block 810.

At block 808, the gaming device determines that the message is valid. In one embodiment, the message is valid because the computed message authentication code matches the DHCP message's message authentication code. From block 808, the flow ends.

At block 810, the gaming device or the DHCP server determines that the message is not valid. From block 810, the flow ends. In one embodiment, the operations of FIG. 8 can be performed by DHCP servers (see discussion of FIG. 9, block 912).

While FIGS. 7-8 describe embodiments where a gaming device authenticates a DHCP server, FIG. 9 describes how a DHCP can respond to the gaming device.

FIG. 9 is a flow diagram illustrating operations for verifying the security code of a DHCP IP address request. The flow commences at block 902.

At block 902, the DHCP server 102 receives a DHCP discover message that includes an authentication request and a gaming device identifier. In one embodiment, the authentication request is an option included in the DHCP discover message. In one embodiment, the gaming device identifier is a media access control address. From block 902, the flow continues at block 904.

At block 904, the DHCP server 102 selects a key for the gaming device. In one embodiment, the key is selected based on the gaming device identifier. In one embodiment, the key is randomly selected. The flow continues at block 906.

At block 906, the DHCP server 102 generates a DHCP offer message that includes the key identifier and a message authentication code. In one embodiment, the message authentication code is created using the DHCP offer message and the key identifier. This operation will be further discussed in the description of FIG. 10. The flow continues at block 908.

At block 908, the DHCP server 102 transmits the DHCP offer message to the gaming device. The flow continues at block 910.

At block 910, the DHCP server 102 receives a DHCP request message. In one embodiment, the DHCP server 102 receives a request message from the gaming device. The flow continues at block 912.

At block 912, the DHCP server 102 performs validation tests on the request message to determine whether it is valid (see discussion of FIG. 8 for more details). The flow continues at block 914.

At block 914, the DHCP server 102 determines whether the DHCP request message is valid. If the DHCP request message is valid, the flow continues at block 918. Otherwise, the flow continues at block 916.

At block 916, the DHCP server 102 drops the DHCP request message. For example, the DHCP server does not respond to the DHCP request message. In another embodiment, the DHCP server responds to the sender with an indication that the DHCP request message was not valid. From block 916, the flow ends.

At block 918, the DHCP server 102 transmits, receives, and validates other messages to and from the gaming device. In one embodiment, the other messages include acknowledgement messages, verify messages, rebind messages, inform messages, and release messages. From block 918, the flow ends.

FIGS. 7 and 9 include operations that call for creating message authentication codes. The discussion of FIG. 10 provides additional details about creating message authentication codes.

FIG. 10 is a flow diagram illustrating operations for generating a DHCP message that includes authentication option information, according to example embodiments of the invention. The flow commences at block 1002.

At block 1002, the gaming device (e.g., gaming machine 108) generates a message that includes a key identifier. The flow continues at block 1004.

At block 1004, the gaming device generates a message authentication code using the key identifier and the message (i.e., the message generated at block 1002). In one embodiment, the gaming device generates the message authentication code by using a key associated with the key identifier. The flow continues at block 1006.

At block1006, the gaming device adds the message authentication code to the message. From block 1006, the flow ends. In one embodiment, the DHCP server can perform the operations of FIG. 10.

Relay Agent Operations

This subsection describes FIGS. 11 and 12. FIG. 11 describes operations performed by a relay agent, while FIG. 12 describes how a DHCP server can utilize relay agent information for determining gaming configuration information.

FIG. 11 is a flow diagram illustrating DHCP option operations performed by a relay agent, according to example embodiments of the invention. The flow commences at block 1102.

At block 1102, the relay agent 114 receives a gaming device-originated message. For example, the relay agent receives a DHCP message destined for DHCP server 102, where the DHCP message originated at gaming machine 116. The flow continues at block 1104.

At block 1104, the relay agent 114 inserts relay agent information into the gaming device-originated message. In one embodiment, the relay agent information can include an IP address of the relay agent 114, a media access control address of the relay agent 114, and location information of the relay agent 114.

In one embodiment, the gaming device-originated message can pass through more than one relay agent on its way to the DHCP server. For example, a DHCP message originating at gaming machine 124 might pass through relay agent 122 and then through relay agent 114 before reaching the DHCP server 102. In this case, both relay agents 122 and 114 insert relay agent information into the message.

The flow continues at block 1106.

At block1106, the relay agent 114 forwards the gaming device-originated message to DHCP server 102. The flow continues at block 1108.

At block 1108, the relay agent 114 receives a server-originated message including relay agent information, where the server-originated message is associated with the gaming device-originated message forwarded at block 1106. For example, the relay agent 114 receives a response DHCP message from the DHCP server 102. The flow continues at block 1110.

At block 1110, the relay agent 114 removes relay agent information from the server-originated message. In one embodiment, the message includes relay agent information from more than one relay agent. In this case, the relay agent only removes its own relay agent information. The flow continues at block 1112.

At block 1112 the relay agent 114 forwards the server-originated message to the gaming device. In one embodiment, the server-originated message may pass through another relay agent before reaching the gaming device. From block 1112, the flow ends.

FIG. 12 is a flow diagram illustrating operations for using relay agent information for determining a gaming device's location and fetching configuration information, according to example embodiments of the invention. The flow commences at block 1202.

At block 1202, a DHCP server 102 receives a gaming device-originated message that includes relay agent information. The gaming device-originated message originating from a gaming device in the gaming network 100. To the flow continues at block 1204.

At block 1204, the DHCP server 102 determines gaming configuration information for the gaming device and it determines the gaming device's location based on the relay agent information. For example, the DHCP server 102 can fetch configuration information relevant to the gaming device's location. The DHCP server 102 can fetch the gaming configuration information from the policy/configuration store. The flow continues at block 1206.

At block 1206 the DHCP server 102 generates a message that includes the gaming configuration information and relay agent information. The flow continues at block 1208.

At block 1208, the DHCP server 102 transmits the message. In one embodiment, the DHCP server 102 transmits the message to a relay agent associated with the relay agent information. From block 1208, the flow ends.

Example Gaming Machine

FIG. 13 is a perspective view of a gaming machine, according to example embodiments of the invention. As shown in FIG. 13, the gaming machine 1300 can be a computerized slot machine having the controls, displays, and features of a conventional slot machine. The gaming machine 1300 can be operated while players are standing or seated. Additionally, the gaming machine 1300 is preferably mounted on a stand (not shown). However, it should be appreciated that the gaming machine 1300 can be constructed as a pub-style tabletop game (not shown), which a player can operate while sitting. Furthermore, the gaming machine 1300 can be constructed with varying cabinet and display designs. The gaming machine 1300 can incorporate any primary game such as slots, poker, or keno, and additional bonus round games. The symbols and indicia used on and in the gaming machine 1300 can take mechanical, electrical, or video form.

As illustrated in FIG. 13, the gaming machine 1300 includes a coin slot 1302 and bill acceptor 1324. Players can place coins in the coin slot 1302 and paper money or ticket vouchers in the bill acceptor 1324. Other devices can be used for accepting payment. For example, credit/debit card readers/validators can be used for accepting payment. Additionally, the gaming machine 1300 can perform electronic funds transfers and financial transfers to procure monies from financial accounts. When a player inserts money in the gaming machine 1300, a number of credits corresponding to the amount deposited are shown in a credit display 1306. After depositing the appropriate amount of money, a player can begin playing the game by pushing play button 1308. The play button 1308 can be any play activator used for starting a wagering game or sequence of events in the gaming machine 1300.

As shown in FIG. 13, the gaming machine 1300 also includes a bet display 1312 and a “bet one” button 1316. The player places a bet by pushing the bet one button 1316. The player can increase the bet by one credit each time the player pushes the bet one button 1316. When the player pushes the bet one button 1316, the number of credits shown in the credit display 1306 decreases by one credit, while the number of credits shown in the bet display 1312 increases by one credit.

A player may “cash out” by pressing a cash out button 1318. When a player cashes out, the gaming machine 1300 dispenses a voucher or currency corresponding to the number of remaining credits. The gaming machine 1300 may employ other payout mechanisms such as credit slips (which are redeemable by a cashier) or electronically recordable cards (which track player credits), or electronic funds transfer.

The gaming machine also includes a primary display unit 1304 and a secondary display unit 1310 (also known as a “top box”). The gaming machine may also include an auxiliary video display 1340. In one embodiment, the primary display unit 1304 displays a plurality of video reels 1320. According to embodiments of the invention, the display units 1304 and 1310 can include any visual representation or exhibition, including moving physical objects (e.g., mechanical reels and wheels), dynamic lighting, and video images. In one embodiment, each reel 1320 includes a plurality of symbols such as bells, hearts, fruits, numbers, letters, bars or other images, which correspond to a theme associated with the gaming machine 1300. Furthermore, as shown in FIG. 13, the gaming machine 1300 includes an audio presentation unit 1328. The audio presentation unit 1328 can include audio speakers or other suitable sound projection devices.

In one embodiment, the gaming machine 1300 can operate in a gaming network in which DHCP servers provide gaming machines with IP addresses and other configuration information, as described herein.

General

In this description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, well-known circuits, structures and techniques have not been shown in detail in order not to obscure the understanding of this description. Note that in this description, references to “one embodiment” or “an embodiment” mean that the feature being referred to is included in at least one embodiment of the invention. Further, separate references to “one embodiment” in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive, unless so stated and except as will be readily apparent to those of ordinary skill in the art. Thus, the present invention can include any variety of combinations and/or integrations of the embodiments described herein. Each claim, as may be amended, constitutes an embodiment of the invention, incorporated by reference into the detailed description. Moreover, in this description, the phrase “example embodiment” means that the embodiment being referred to serves as an example or illustration.

Herein, block diagrams illustrate example embodiments of the invention. Also herein, flow diagrams illustrate operations of the example embodiments of the invention. The operations of the flow diagrams are described with reference to the example embodiments shown in the block diagrams. However, it should be understood that the operations of the flow diagrams could be performed by embodiments of the invention other than those discussed with reference to the block diagrams, and embodiments discussed with references to the block diagrams could perform operations different than those discussed with reference to the flow diagrams. Additionally, some embodiments may not perform all the operations shown in a flow diagram. Moreover, although the flow diagrams depict serial operations, certain embodiments could perform certain of those operations in parallel. 

1. A computer-implemented method comprising: receiving values for one or more user-specified options associated with a gaming device; receiving a network address request originating from the gaming device; and transmitting a reply destined for the gaming device, wherein the reply includes a network address and the values for the one or more user-specified options.
 2. The computer-implemented method of claim 1, further comprising: determining that there is a policy associated with the network address request; and determining that the policy allows transmission of the reply.
 3. The computer-implemented method of claim 1, wherein the values include configurations for the gaming device.
 4. The computer-implemented method of claim 3, wherein the configurations are selected from the group consisting of audio, video, pay tables, and gaming software updates.
 5. The computer-implemented method of claim 1 further comprising: receiving the user-specified options through a graphical user interface; and storing the user-specified options.
 6. The computer-implemented method of claim 1 further comprising: receiving a policy through a graphical user interface; and storing the policy.
 7. The computer-implemented method of claim 1, wherein the policy makes decisions based on allowed uptime associated with the gaming device, gaming applications executing on the gaming device, a location of the gaming device, and time.
 8. A computer-implemented method comprising: transmitting, from a gaming device in a gaming network, a DHCP discover message that includes an authentication request and an identifier of the gaming device; receiving a DHCP offer messages, wherein the DHCP offer message includes a key identifier and a first message authentication code; performing a validation test on the DHCP offer message; generating a DHCP request message that includes the key identifier and a second message authentication code; and transmitting the DHCP request message through the gaming network to a sender of the DHCP offer message.
 9. The computer-implemented method of claim 8, wherein the authentication request includes a predefined value for a DHCP authentication option.
 10. The computer-implemented method of claim 8, wherein the second message authentication code is computed using the key identifier and the DHCP request message.
 11. The computer-implemented method of claim 8, wherein the DHCP offer message is one of a plurality of DHCP offer messages received from a plurality of DHCP servers in the gaming network, the method further comprising choosing the DHCP offer message from the plurality of DHCP offer messages.
 12. The computer-implemented method of claim 8, wherein second message authentication code is generated by inputting the DHCP request message and the key identifier into a computation function.
 13. A system comprising: a gaming device to transmit a DHCP server-destined message; a DHCP server to receive the DHCP server-destined message including relay agent information, to generate a gaming device-destined response message including the relay agent information, and to transmit the gaming device-destined response message; and a relay agent to receive the DHCP server-destined message, to insert the relay agent information into the DHCP server-destined message, to forward the DHCP server-destined message to the DHCP server, to receive the gaming device-destined response message, to remove the relay agent information from the gaming device-destined response message, and to forward the gaming device-destined response message to the gaming device.
 14. The system of claim 13, wherein the relay agent information is selected from the group consisting of relay agent location information, time-based information, relay agent Internet protocol addresses, and relay agent media access control addresses.
 15. The system of claim 13, further comprising a plurality of other relay agents, wherein the gaming device-destined response message includes other relay agent information associated with the other relay agents, and wherein the relay agent does not remove the other relay agent information from the gaming device-destined response message.
 16. The system of claim 13, wherein the DHCP server is further to determine, based on the relay agent information, configuration parameters, and wherein the DHCP server is to insert the configuration parameters into the gaming device-destined response message.
 17. The system of claim 16, wherein the gaming device is further to receive the gaming device-destined response message, to store the configuration parameters, and to perform gaming device operations based on the configuration parameters.
 18. The system of claim 13, wherein the gaming device is selected from the group consisting of gaming machines, community game servers, community presentation devices, and gaming controllers. 